from 工程.凌云项目.X5JL接收激励模块.基础配置.基础配置引用 import *
    
def 时域波形测试初始化():
    模块编号 = str(sys.UUTINFO[1])
    if gy参数.初始化标识 != '时域波形测试初始化' + 模块编号:
        gy参数.初始化标识 = '时域波形测试初始化' + 模块编号
    else:
        return
    gy仪器.峰值功率计.连接()
    gy产品.射频路由.连接()
    gy产品.模块串口.连接()
    gy产品.模块CAN总线.连接()

    gy仪器.峰值功率计.设置幅度每格('5')
    gy仪器.峰值功率计.设置时间宽度(1e-8)
    gy仪器.峰值功率计.设置触发延时(0)
    gy仪器.峰值功率计.设置衰减补偿(0)
    gy仪器.峰值功率计.设置测量单位('dbm')
    gy仪器.峰值功率计.设置脉冲单位('watts')

    gy仪器.峰值功率计.设置触发电平(-5)
    gy仪器.峰值功率计.设置幅度中心(-10)

    gy产品.射频路由.接通激励到峰值功率计()

    print("时域波形测试初始化")
    
def 时域波形2(频点=1000):
    时域波形测试初始化()
    gy产品.模块串口.设置频点(频点)

    gy仪器.峰值功率计.设置峰值触发模式()
    gy仪器.峰值功率计.设置打开测试()
    gy仪器.峰值功率计.设置触发延时(3e-6)
    gy仪器.峰值功率计.设置时间宽度(1e-6)
    gy方法.时间处理.延时(0.5)
    gy仪器.峰值功率计.设置关闭测试()
    发射功率 = gy仪器.峰值功率计.读脉冲功率()

    gy仪器.峰值功率计.设置MARK1位置(-2e-6)
    功率数组 = gy仪器.峰值功率计.读波形()

    功率数组max值 = max(功率数组)
    for i in range(0, 300):
        if 功率数组[i] > 功率数组max值  - 0.45:
            起始点 = i
            break
    for i in range(499, 100, -1):
        if 功率数组[i] > 功率数组max值  - 0.45:
            终止点 = i
            break
    有效功率数据 = 功率数组[起始点:终止点]
    脉冲顶部max = max(有效功率数据)
    脉冲顶部min = min(有效功率数据)
    脉冲顶部测试值 = 脉冲顶部max - 脉冲顶部min

    gy仪器.峰值功率计.设置打开测试()
    gy仪器.峰值功率计.设置触发延时(22e-6)
    gy仪器.峰值功率计.设置时间宽度(5e-6)
    gy方法.时间处理.延时(0.5)
    gy仪器.峰值功率计.设置MARK1位置(-3e-6)
    功率数组 = gy仪器.峰值功率计.读波形()

    脉冲序列max数组 = []
    for i in range(4):
        脉冲序列max数组.append(max(功率数组[i * 125:i * 125 + 125]))
    脉冲序列max = max(脉冲序列max数组)
    脉冲序列min = min(脉冲序列max数组)
    脉冲序列测试值 = 脉冲序列max - 脉冲序列min

    gy仪器.峰值功率计.设置脉冲沿时间的位置()
    gy仪器.峰值功率计.设置打开测试()
    gy仪器.峰值功率计.设置触发延时(3e-6)
    gy仪器.峰值功率计.设置时间宽度(1e-6)
    gy方法.时间处理.延时(1)
    功率值 = gy仪器.峰值功率计.读脉冲功率()
    脉宽 = gy仪器.峰值功率计.读脉冲宽度() * 1e6
    gy仪器.峰值功率计.设置触发延时(0)
    gy仪器.峰值功率计.设置时间宽度(100e-9)
    gy方法.时间处理.延时(1.2)
    上升沿, 下降沿 = gy仪器.峰值功率计.读上升时间下降时间()
    gy仪器.峰值功率计.设置下降沿触发()
    gy方法.时间处理.延时(1.2)
    上升沿0, 下降沿 = gy仪器.峰值功率计.读上升时间下降时间()

    gy仪器.峰值功率计.设置上升沿触发()
    gy仪器.峰值功率计.设置关闭测试()
    上升沿 = 上升沿 * 1e6
    下降沿 = 下降沿 * 1e6

    gy方法.测试结果保存.结果保存(脉冲顶部测试值, "顶部不平度")
    gy方法.测试结果保存.结果保存(脉冲序列测试值, "序列不平度")

    gy方法.测试结果保存.结果保存(脉宽, "脉宽")
    gy方法.测试结果保存.结果保存(上升沿, "上升沿")
    gy方法.测试结果保存.结果保存(下降沿, "下降沿")

def 时域波形1():
    时域波形测试初始化()
    gy产品.模块串口.设置频点(1090)

    gy仪器.峰值功率计.设置峰值触发模式()
    gy仪器.峰值功率计.设置打开测试()
    gy仪器.峰值功率计.设置触发延时(0)
    gy仪器.峰值功率计.设置时间宽度(0.2e-6)
    gy方法.时间处理.延时(0.5)

    gy仪器.峰值功率计.设置关闭测试()
    发射功率 = gy仪器.峰值功率计.读脉冲功率()
    gy仪器.峰值功率计.设置MARK1位置(-0.4e-9)
    功率数组 = gy仪器.峰值功率计.读波形()

    for i in range(0, 400):
        if 功率数组[i] > 发射功率 - 0.45:
            起始点 = i
            break
    for i in range(499, 100, -1):
        if 功率数组[i] > 发射功率  - 0.45:
            终止点 = i
            break
    有效功率数据 = 功率数组[起始点:终止点]
    脉冲顶部max = max(有效功率数据)
    脉冲顶部min = min(有效功率数据)
    脉冲顶部测试值 = 脉冲顶部max - 脉冲顶部min

    gy仪器.峰值功率计.设置打开测试()
    gy仪器.峰值功率计.设置触发延时(4.6e-6)
    gy仪器.峰值功率计.设置时间宽度(1e-6)
    gy方法.时间处理.延时(1.1)
    gy仪器.峰值功率计.设置关闭测试()
    gy仪器.峰值功率计.设置MARK1位置(-0.4e-6)
    功率数组 = gy仪器.峰值功率计.读波形()

    脉冲序列max数组 = []
    for i in range(7):
        脉冲序列max数组.append(max(功率数组[i * 70:i * 70 + 70]))
    脉冲序列max = max(脉冲序列max数组)
    脉冲序列min = min(脉冲序列max数组)
    脉冲序列测试值 = 脉冲序列max - 脉冲序列min

    gy仪器.峰值功率计.设置脉冲沿时间的位置()
    gy仪器.峰值功率计.设置打开测试()
    gy仪器.峰值功率计.设置触发延时(0)
    gy仪器.峰值功率计.设置时间宽度(100e-9)
    gy方法.时间处理.延时(1)
    gy仪器.峰值功率计.设置关闭测试()
    脉宽 = gy仪器.峰值功率计.读脉冲宽度() * 1e6
    上升沿, 下降沿 = gy仪器.峰值功率计.读上升时间下降时间()
    上升沿 = 上升沿 * 1e6
    下降沿 = 下降沿 * 1e6

    gy方法.测试结果保存.结果保存(脉冲顶部测试值, "顶部不平度")
    gy方法.测试结果保存.结果保存(脉冲序列测试值, "序列不平度")

    gy方法.测试结果保存.结果保存(脉宽, "脉宽")
    gy方法.测试结果保存.结果保存(上升沿, "上升沿")
    gy方法.测试结果保存.结果保存(下降沿, "下降沿")

if __name__=='__main__':
    pass
    sys.UUTINFO = [0, 1]
    时域波形1()
